package com.chapter10.demo1;


/**
 * arraycopy方法：复制了对象的引用，并没有复制实际的对象。
 */
public class ObjectCopy {

    public static void main(String[] args) {
        Foo[] arr1 = new Foo[5];
        Foo[] arr2 = new Foo[5];
        for(int i=0;i<5;i++){
            arr1[i] = new Foo(i);
           // System.out.println(arr1[i].value);
        }

        System.out.println(arr1[0].value); // 0
        System.arraycopy(arr1,0,arr2,0,arr2.length);
        arr2[0].value=10;
        System.out.println(arr2[0].value); // 10

        //虽然我们只是修改了arr2数组中第一个元素的内容，但是arr1数组的第一个元素的内容同样发生了变化。
        //说明了，对于对象数组来说，arraycopy方法仅仅是复制了对象的引用，并没有复制实际的对象。
        System.out.println(arr1[0].value); // 10


    }
}


